package com.zs.usc.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.zs.usc.entity.MenuInfo;
import com.zs.usc.vo.CurrentUserInfo;

import java.util.List;

/**
 * <p>
 * 服务类
 * </p>
 *
 * @author ZS
 * @since 2021-12-11
 */
public interface IMenuService extends IService<MenuInfo> {

    /**
     * 根据登录用户信息获取用户菜单列表
     *
     * @param currentUser 当前登录用户信息
     * @param appCode     某个应用标识（非必填，当为空查所有系统的菜单，当不为空则指定系统下的菜单）
     * @return 菜单列表
     */
    List<MenuInfo> listMenu(CurrentUserInfo currentUser, String appCode);

    /**
     *
     * @param userId 用户ID必须传
     * @param appCode
     * @return
     */
    List<MenuInfo>  listMenuByUserId(String userId, String appCode);

    /**
     * 当路由菜单或其他菜单存在其他系统时，同时又想在鉴权中心进行角色控制----想想养殖方案库
     * 养殖方案库配置了所有菜单，然后将所有菜单+用户传入鉴权中心过滤掉没有权限的菜单数据后返回
     * @param u
     * @param menuList 所有菜单信息的唯一标识集合
     * @return
     */
    List<String> getUserAllowMenus(CurrentUserInfo u, List<String> menuList);
}
